<?php
namespace app\index\controller;
use app\BaseController;
use think\facade\Db;
use think\facade\View;
use think\facade\Route;

class Index extends  BaseController
{
    public function index()
    {
        //  视图渲染:
        //  控制名对应View目录下目录名大写转小写加下划线
        //  方法名对应html文件名  大写转小写加下划线  以.html为后缀结尾
        //  如果  fetch()  没给参数就默认与方法同名的HTML文件
        //  当fetch方法有参数时   对应渲染指定的html页面   控制器对应view下相同名的目录   方法名对应html文件名
        //  fetch('应用名/控制器名/方法名')
        //  return View::fetch('user );
        //  return View::fetch('demo/index');

        //  渲染对应的html页面
        //  return View::fetch("admin@index/index");
        //  return View::fetch("../view/index/padd_wore");  //  本目录
        // view()渲染视图的助手函数
        // return view();
        //对应渲染默认关联的html页面
        // url生成
        // 参数为空时 默认生成当前方法自己的链接
        // 参数（'应用/控制/方法'） 从前到后 可以一次省略
        // echo Route::buildUrL();///index.php/index/Index/index.html
       //  echo Route::buildUrL("user"); ///index.php/index/Index/user.html
        // echo Route::buildUrL("admin/user/user");   // /index.php/admin/user/user.html

        // 参数（'','链接地址栏参数'） 从前到后 可以一次省略
            //   Suffix  指定生成伪静态后缀
        // echo Route::buildUrl()->Suffix('.php');  // /index.php/index/Index/index.php

        // 指定生成二级域名
        // echo Route::buildurl()->domain("www"); //  http://www.tp30.com/index.php/index/Index/index.html

        //*@param string        $url    路由地址
        //*@param array         $vars   变量
        //* @param bool|string  $suffix 生成的URL后缀/
        ///*@param bool| string $domain 域名
        // echo url(); //index.php/index /Index /index.html
        // echo url('admin/index/index',['id'=>2],'.php','demo');
        //  http://demo.tp30.com/index.php/admin/index/index.php?id=2

        //在html模板中写法
        //{:url('admin/Index/info')}

        //  模板赋值
//        $aa = "王六流";
//        View::assign('aa',$aa);
//        $arr = ['王刘鲁','nan'];
//        View::assign('arr',$arr);
//        $arr1 = ['name'=>'王刘鲁','sex'=>'nan'];
//        View::assign('arr1',$arr1);
        //  多维数组
//        $arr2 =[
//                ['name'=>'李元','sex'=>'nan'],
//                ['name'=>'王六流','sex'=>'nan'],
//        ];
//        View::assign('arr2',$arr2);
        //  对象
//        $od = new \stdClass();
//        $od->name = "王刘礼";
//        $od->sex = "未知";
//        View::assign('od',$od);
//
//        // 批量赋值1
//        $arr3 = ['name'=>'王刘鲁','sex'=>'nan'];
//       //  View::assign($arr3);
//        // 批量赋值2
//        return view('',$arr3);

        //  内置标签
        //  循环标签
        //  foreach标签   name='循环数据源’     key='数组索引’      item='循坏变量
        //  volist标签    name='循环数据源'     id='循环变量’       $key='数组索引'
        //                key='数组循环计数器’  offset='起始位置’   length='数据长度·
        //                mod='范围循环计数器'  empty='默认值'
        // {for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }


        $add = [
            [
                'id'=>1,
                'name'=>'王六流'
            ],
            [
                'id'=>2,
                'name'=>'王六流'
            ],
            [
                'id'=>3,
                'name'=>'王六流'
            ],
            [
                'id'=>4,
                'name'=>'王六流'
            ]
        ];
//        View::assign('add',$add);
//        return view();

        //  比较标签 ed neq lt elt gt egt heq nheg
        //  {比较标签 name="变量" value="值"}
        //    内容
        //  {/比较标签}
        //  $name = 1;

        //  判断标签
//        $num = 2;
//        View::assign('num',$num);

        // 三元运算
        $name = 1;
        View::assign('name',$name);

        return view();
    }
    public function paddWore()
    {
        $list = Db::table('ecm_user')->select();

        // 查询数据集对象 $list
        //  数组     $list->toArray();
        View::assign('list',$list);

        //  链式操作（连贯操作)

        //  [table]('表全名') name('去掉表前缀的表明)
        //  Db: :table( 'ecm_user u')->select();
        //  Db: :table([ 'ecm_user'=>'u'])->select();
        //【alias】用于设置当前数据表的别名
        //  Db::table('ecm_user')->alias('u')->select();
        //  Db::table('ecm_user')
        //  ->alias([
        //      'ecm_user '=>'u ',
        //      'ecm_order' =>'o'
        //  ])
        //  ->select();

        //  where( '字段','表达式','条件')        where（数组)
            //  join（‘表名别名’，‘条件’，‘连表方式）连表操作
        //  join 连表操作
        //  $res = Db: :table( 'ecm_order ')/
        //  ->alias( 'o')
        //  ->join('user u','o.uid = u.id','left')
        //  ->select();

        //field字段查询

        //  $res = Db::name('user')
        //    ->field('id i,uname')  // 给字段起别名
        //    ->select();
        //  $res = Db::name('user')->field(['id'=>'ids','uname'])->select();
        // $res = Db::name('user')
            // ->field(true)       //  显示所有字段
            // ->withoutField('id,uname')  // 排除字段查询
            // ->field('avg(id) id')
            // ->select();

        //  order排序操作
        //        $res = Db::name('user')
        //            ->order("id desc")
        //            ->select();
        //        $res = Db::name('user')
        //            ->order(['addtime'=>'asc','id'=>'desc']) // 排序之中在排序
        //            ->select();
        //        $res = Db::name('user')
        //            ->orderRand()  // 随机排序
        //            ->select();

        //  limit / page
        //  $res = Db::name("user")->limit(1,2)->select();
        //  $res = Db::name("user")->page(2,2)->select();
        //  $res = Db::name( 'user')->limit(1)->page(2)->select();

        //  group having
        $res = Db::name("user")
            ->group('addtime')    // 分组
            ->having('addtime > 23424')  //  筛选
            ->select();





echo "<pre>";
print_r($res);
echo "</pre>";

        return View::fetch();
        //  文件名  padd_wore  方法名中有大写字母就需要 在创建HTML文件的时候 在把大写字母变成小写 并且在大写子目前面加一个下划线
//        return View::fetch();
    }
}